#pragma once

#include "CMILMatrix.h"
#include "SharedRenderParams.h"
#include "XVERTEX25D.h"
#include "NWRenderParams.h"
class CRasterizerEdgeStore;
class CCompositeVectorBuffer;


struct NWProjectionStorage
{

public: 
	NWProjectionStorage();
	~NWProjectionStorage();
	void SetProjectedQuadEdges(CRasterizerEdgeStore * projectedQuadEdges);
	CRasterizerEdgeStore * GetProjectedQuadEdgesNoRef();
	struct SharedRenderParams outerProjectionSharedRP;
	struct NWRenderParams outerProjectionNWRP;
	CCompositeVectorBuffer * pIntermediateVectorBuffer;
	CMILMatrix intermediateTransform;
	struct XSIZEF elementSize;
	struct XRECTF_RB quadPadding;
	struct XVERTEX25D vTopLeft;
	struct XVERTEX25D vDX;
	struct XVERTEX25D vDY;
	XBOOL usesHardwareIntermediate:1;
private: 
	CRasterizerEdgeStore * pProjectedQuadEdges;

};